HTBasic for Windows Release Notes Release 8.3 TransEra Corporation 375 East 800 South Orem UT 84097 phone (801)-224-6550 fax (801)-224-0356 Web page: http://www.transera.com ftp site: ftp://ftp.rmbasic.com e-mail: htb-sales@transera.com or htb-support@transera.com _______________________________________________________ This file contains information regarding changes and additions that have been made since the last printing of the manuals. Manual Corrections: _______________________________________________________ Installing and Using Manual: Page 1-9 The -fn switch example should read: -fn "Courier New",-12,255 It is important to note the font name is case and space sensitive. Page 1-10 The default workspace size is 16 megabytes. Page 1-11 GESCAPE CRT Code table should read: Code Operation 46 Turn the Control toolbar Off 47 Turn the Control toolbar On 50 Remove the menu bar 51 Restore the menu bar 64 Filename in titlebar on 65 Filename in titlebar off Page 3-7 GESCAPE CRT example should read: GESCAPE CRT,46 !turns the Control Toolbar off GESCAPE CRT,47 !turns the Control Toolbar on Page 6-5 The example for WIN-PRINT control register 117 should read: CONTROL Isc,117;Value Page 6-8 Interrupts are fully supported by the SERIAL & SERIAL32 drivers. Page 8-1 ARROW KEYS are not a supported input source for HTBasic version 8. User's Guide Page 4-34 & 4-36 ARROW KEYS are not a supported input source for HTBasic version 8. Page 9-14 Bit 0 of SERIAL32 control register 5 should read: 1=Tie DTR high, 0=Use DTR in handshaking Page 9-18 WRITEIO register 2 is not supported with the SERIAL or SERIAL32 driver. Page 11-4 The Exported DISP function declaration should read: void Disp(char * Msg,BOOL opt=1); The example of the command in operation is: Disp("This is the HTBasic DISP line",(1)) Disp("This is the HTBasic message line",(0)) Repairs made to 8.2 for 8.3 _______________________________________________________ **Interface** 1) It is now possible to SAVE and GET programs without line numbers. This is an option on the Save As dialog box. 2) It is now possible to select a section of code and using the Edit|Comment menu item, comment out an entire section of code. 3) An environment setting for "running with errors" has been added. With this turned off, a warning dialog box appears when attempting to run a program with syntax errors. With this setting on, programs with syntax errors may still be run. 4) Opening a non PROG or ASCII file now gives a warning when more than 25 errors are encountered. 5) The change MSI dialog has been changed to allow direct keyboard entry. 6) RENumber has been added as an option to the Edit menu 7) View|File Statistics now display the number of lines with syntax errors. 8) Wait cursors now appear while the program is doing intense editor related operations such as opening, saving, etc. 9) Ctrl+Alt+D now appears as the assigned accelerator key for the Device setup dialog. The Device setup dialog is now accessed through the Tools menu item. 10) Accelerator key Ctrl + E was added to toggle Edit mode on and off. 11) Alt-F6 is now properly assigned in KBD CMODE ON when using Legacy Keyboard mode. 12) Clicking the toggle edit mode button while the child window is minimized no longer causes an application error to occur. 13) A history buffer was added to the Find, and Replace dialogs. 14) Some editor keyword coloring was corrected. 15) Corrected a problem with DELeting large blocks of code. 16) The general speed of the editor has been increased. 17) Speed in scrolling in very large programs has been greatly increased. 18) The -geometry command line startup switch has been fixed to allow dimensions less than 100. 19) The Next Error/Previous Error tooltip text messages were updated to correctly describe their functions. 20) Opening a file from the MRU when there was no child window present did not go directly to edit mode. This has been fixed. 21) The print program function has been repaired to properly handle large files, and selected text. 22) Cutting and pasting a line with a bookmark, no longer causes an application error. 23) Dropping a file onto the HTBasic.exe or on to a shortcut to HTBasic.exe for opening files is now supported. Also dropping a file onto the open editor opens the file into the editor. Dropping a PROG file onto an open output window opens and runs the program. 24) It is now impossible to close HTBasic while it is saving a program. The cursor will remain a wait cursor throughout all saving/storing, and opening operations. 25) Previously if PEN 0 had been modified, the automatic color inverting for DUMP GRAPHICS would not take place. 26) The proper error message is now displayed when a line length exceeds the 256 character limit. Previously this would cause an application error. 27) Using the F1 key for help access now properly leaves the cursor on the same line in the editor while accessing the help window. 28) Access to user defined help is now properly permitted. 29) Entering a non-existent program name in the file open dialog box no longer causes an application error. 30) Subs may now be deleted by highlighting them. If there are comments after the sub, they must be also included in the selection. Previously it was only possible to delete subs in this way if there were no comments surrounding the sub. 31) After performing a GLOAD to the screen, a DUMP GRAPHICS would produce a solid black output. This has been repaired to properly DUMP GRAPHICS of GLOADed screens. 32) GESCAPE CRT,52 would remove the status bar when locking the HTBasic frame. It now only locks the frame. 33) The set indent Dialog box now properly keeps track of Default vs. User Specify mode. **Drivers** 1) New drivers include: SERIAL – Support for GUI control of the SERIAL bus. TABLET - Support for use of GRAPHICS INPUT IS Isc,"TABLET" GPIO600 - Support for the TransEra Model 600 GPIO card GPIO650 - Support for the TransEra Model 650 GPIO card NOTE: Under Windows 2000 interrupts are not yet supported with either of the new GPIO drivers. 2) Using the SERIAL device, it is now possible to load any COM port. Previously this was limited to COM1 - COM9. Also, it is now possible to load as many ports as ISC's available. 3) The ON INTR functionality added to the SERIAL32 driver caused it to dramatically increase processor demand. This has been repaired so the driver only accesses the processor as needed. 4) The READIO & WRITEIO registers for the SERIAL32 driver have been clarified. 5) SERIAL32 driver was updated to allow Ctrl+Break or Clear I/O in all situations. 6) GPIB driver updated to properly detect device interrupts. 7) The SICL I/O Libraries included for using the TransEra Model 900 GPIB card under Windows NT & 2000 with the HPIBS driver have been updated to Agilent's revision J.02.02. 8) Hardware timeouts with the GPIBNI driver were incorrectly returning error 150 when there was a device powered on or connected to the card. This now properly returns error 168. 9) GPIBNI driver updated for faster PASS CONTROL with some NI compatible GPIB cards. 10) GPIBNI driver updated to properly use the USING % and –K IMAGE specifiers. 11) PLOTTER IS HPGL updated to account for an obscure rounding problem. 12) DUMP GRAPHICS via the GIF driver now properly inverts the background color after PEN 0 is modified. 13) The following control register has been added to the WIN- PRINT driver allowing the underline option in printed output: CONTROL 10,116;4 ! Underline CONTROL 10,116;5 ! Underline Italic CONTROL 10,116;6 ! Bold Underline CONTROL 10,116;7 ! Bold Italic Underline 14) The PS driver has been updated to support GFONT information on labels. The driver supports the following fonts: Helvetica Helvetica-Oblique Helvetica-Bold Helvetica-BoldOblique Courier Courier-Oblique Courier-Bold Courier-BoldOblique Times-Roman Times-Italic Times-Bold Times-BoldItalic **Internal Operation** 1) LONG variables are now supported in FOR loops and all ENTER statements. 2) It is now possible to initialize a variable when it is declared. i.e. INTEGER I=13 3) STATIC variables now support Complex number declaration during initialization. 4) Variables not specifically declared and set to values larger than 65535 now evaluate properly as REAL or LONG variables. 5) XREF now differentiates array variables from standard variables. 6) Invoking HELP with three keywords generated a syntax error. This has been fixed. 7) The CAPS LOCK status, STATUS (KBD,0) now properly reports the state of the CAPS LOCK key. 8) The CAT command no longer shows an extra file in its listing if a temporary file is in the directory. 9) Using the CAT command with spaces in the command now properly CATalogs the specified directory. 10) CONFIGURE LONGCATDATES has been added as an option to control how many digits of the year are displayed in a CAT. Previously four digits would be displayed if LONGFILENAMES was on. Using CONFIGURE LONGCATDATES ON, or the Run Environment option produces a four-digit year. CONFIGURE LONGCATDATES OFF produces only a two-digit year. 11) TRANSFER from a file to a buffer was repaired to properly accept the ON END option. 12) TRANSFER no longer hangs if data transferred from a file is smaller than the receiving buffer. 13) Inbound TRANSFER was not terminating when an EOI signal was sent from the source. This has been repaired to properly detect the EOI signal. 14) Using RETURN 1 from MAIN now properly reports an error. Previously this would cause an application error. 15) Font information passed to the application using the –fn switch is only written to the registry if the Editor Environment font dialog is updated. 16) When working with KBD CMODE on, ALPHA PEN now properly updates the softkey colors. 17) The Alpha line height command, CONTROL CRT,13 has been updated to work in all situations. Previously inaccurate results were shown when working with a small alpha height. 18) Using CHR$(129) for inverse video now does not effect the softkey line. Previously this would cause improper colors to appear in the region to the right and below the softkeys. 19) Using LOADSUB to LOAD a String Function from an older PROG type is now fully supported. 20) Colors now map properly in color map mode when using a GFONT. 21) Improper assignment of LONG variables now properly produces error 19, Improper value or out of range. 22) The ENTER command has been expanded to properly handle ENTERing into LONG variables. 23) An extra pixel was being displayed when HTBasic was idle and the TRACK CRT cross-hair was under the mouse pointer. This has been repaired. 24) It is again possible to scroll through displayed graphics and text while HTBasic is at a WAIT. 25) SET TIMEDATE TIME was updated to properly interact with the automatic updating of time based upon daylight savings time. Previously this would be off by one hour while not in daylight savings if Windows was set to automatically update time based upon daylight savings. **Debugger** 1) Breakpoint dialogs now remember their last settings. Variable entry is set to top of list. 2) The calling line number has been added to the Call Stack debug window. 3) When in Debug Paused state, clicking on Debug Run no longer stops at line 10. It properly runs through to the first breakpoint. 4) When attempting to edit the program while paused in the debugger now properly stops debug first. 5) During Debug, the status bar now reports the status as either Debug Paused, or Debug Running. 6) The order of the listboxes for Breakpoints dialogs have been changed to first list the sub and then the variable. 7) While running the debugger, the runlight now indicates either debug run, or debug paused. **Basic Plus** 1) BPLUS has been updated to allow focus control between Widgets and the main Basic window. Using the FOCUS attribute it is possible to change focus to a particular widget or to the Basic window. A value of 0 gives focus to the specified widget, a value of 1 moves focus from the Widget to the Basic window. 2) Basic PLUS has been updated so TAB stops no longer access Widget labels. 3) The filedialog has been updated to properly allow Screen Builder modification. 4) With Basic Plus loaded, there is no longer a performance hit when using SET PEN commands. 5) Corrected a problem under Windows 95 when closing HTBasic after using Basic Plus **DLL Toolkit** 1) The DLL Loader now supports array elements in the parameter list. Previously it was only possible to pass the entire array. 2) It is now possible to pass Basic specific strings such as KBD$ and ERRM$ to a dll via the DLL toolkit. 3) The ability to output to either the DISP or Message line with the HTBDisp Dll has been added. 4) The HTBFileopen dll was enhanced to allow for multiple file selection. It was also modified to ensure that it will always appear in the foreground each time it is called. 5) The HTBasicrevenge dll has been updated to work properly on 800x600 resolution screens. 6) The HTBLinechart dll sample has been updated to better illustrate its capabilities. 7) DLLs made into CSUBs using the CSUB toolkit that used non system modal message boxes could appear behind the Basic window. To ensure they appear in front of the Basic window, the CSUB will need to be re-compiled with the following code which provides the Messagebox function with a handle to the parent window. HWND GetHandle() { HANDLE hBasic = LoadLibrary("htbwin.exe"); HWND * phBasicWnd = (HWND *)GetProcAddress(hBasic,"g_hBasicFrameWindow"); return(*phBasicWnd); } 8) The HTBLink DLL sample was updated to prevent problems when exiting the Client sample program. Repairs made to 8.1 for 8.2 _______________________________________________________ 1) The following GESCAPE codes were added: GESCAPE CRT,51 ! turns the menu bar on GESCAPE CRT,64 ! turns the filename in the titlebar on GESCAPE CRT,65 ! turns the filename in the titlebar off 2) The INPUT command was adjusted to support LONG INTEGERS. 3) CONTROL KBD,14;X Would set the base softkey number, but it would revert back to default if softkeys were cycled. This was fixed to work as follows: 0 - Lowest softkey will be softkey 1 (default), 1 - Lowest softkey will be softkey 0. This register has no affect with KBD CMODE ON. 4) DEL in legacy editor would cause GPF if it deleted across contexts. 5) Multiple control registers will now properly fill an array. Previously in some cases this would cause the stack to be off resulting in a "Basic Bad Stack" error. 6) Using the USER KEYS command to change to an already present USER KEYS definition would cause the softkeys to unnecessarily update. This has been repaired so there is no flicker. 7) SEPARATE ALPHA FROM GRAPHICS mode would not default to MERGE ALPHA WITH GRAPHICS when closing the child window. This would cause a GPF upon opening a new program. This has been repaired to properly be in MERGE ALPHA WITH GRAPHICS mode at startup despite its state at close. 8) Pasting sample programs from the help files would give erroneous errors on lines with multiple spaces. The extra characters in the spaces have been removed. 9) Closing the child window while waiting on an INPUT statement would cause a GPF upon opening another program. This has been resolved so closing the child window no longer has this adverse effect if waiting on an INPUT. 10) Error message on cancel from Password dialog box has been removed. 11) Under Windows 95/98 the EXECUTE command for DOS commands was not functional. Using EXECUTE to run a DOS command would result in a "Too Many parameters" error. This has been corrected so the EXECUTE command will run both Windows programs and DOS commands. 12) The control register that extends the functionality of the SUSPEND INTERACTIVE command now properly follows the following guidelines: CONTROL KBD,7;x - Disable Keyboard Interrupts: where x = 0 Enable all keyboard keys. 1 Disable all keyboard keys but RESET key. 2 Disable RESET key only. 3 Disable all keyboard keys. 13) SYSTEM$ ("SERIAL NUMBER") was not finding the serial number entered during installation. This has been repaired so that the serial number is properly returned. 14) The MODULO command has been repaired to properly determine variable dimensions. Previously it would report erroneous dimension conditions. 15) The SELECT statement has been updated to properly evaluate LONG variables that were created from strings using the VAL statement. Previously this was unsupported. 16) EXECUTE command WAIT OFF option corrected. 17) The -fn startup switch now passes in font information, including code page selection to the Windows Editor. Note that changing the Editor font using the Editor Environment dialog box will override any -fn switch settings. 18) Code page selection now affects Find & Replace dialog boxes. 19) -geometry startup switch now correctly sets child window area despite the presence or lack of toolbars. 20) Softkeys F9 & F10 under KBD CMODE ON are now fully functional. 21) When using CONTROL 10,114;2 to programmatically change paper rotation to landscape, the margins were not being adjusted. The margins are now properly being set to Landscape margins. 22) A scrollbar was added to the Recall bar in the Windows editor. 23) Conditional breakpoints had difficulties when using keywords as variables. Case was not enough to separate the keyword from the variable in the debugger. This has been repaired to allow keywords as variables so long as the case of the variable did not conflict with the keyword. 24) The find and find next features did not parse when used to move from one line to the next. This has been repaired so that moving from a line using find and find next has the same effect as moving the cursor off the line. 25) Using ISC 26 to print, DUMP, and then print again on the same paper is now supported. Using CONTROL 26,112;x and CONTROL 26,113;x to control the auto eject after printing and DUMPing is now fully supported. Previously this was only supported when using WIN-DUMP, and WIN-PRINT. 26) When using a Bold large font in the new editor under the Windows 95/98 operating systems, the text would appear to jump when placing the cursor between characters. The character sizes are now being updated properly so there is no apparent jump. 27) When using the Print Program feature found on the File menu, the page indication at the bottom of the printed page would sometimes be cut off. This has been repaired so the page indicator is complete. 28) CONTROL PRT registers 109 & 110 were implemented to provide the ability to specify X and Y coordinates with the WIN- PRINT driver. 29) The APPEND option for DUMP DEVICE IS 10 now behaves as CONTROL PRT register 113 for DUMP GRAPHICS page eject control. 30) HPGL plotter driver was ejecting an extra blank page after each plot. This has been repaired to no longer eject the extra page. 31) ENABLE INTR was not releasing memory once it was complete. This has been resolved so that memory is no longer reserved. 32) ON INTR on the serial bus would not report interrupts after an END statement was processed. This has been repaired to function properly. 33) The GPIBNI driver was updated to handle all TIMEOUTs as software timeouts. The resolution of these timeouts is now from that of the Operating System's limit to 32.767 seconds. For Windows 95/98 the resolution is 55ms, for Windows NT & 2000 it is 10 ms. 34) Basic Plus updated to improve event handling. 35) Basic Plus binary updated to handle SCRATCH ALL situations. Repairs made to 8.0 for 8.1 _______________________________________________________ 1) Occasionally a password would mysteriously appear in a PROG file when the save with password option was not checked. This was a problem when checking for the presence of a password on the file. There was no password on the file. This has been corrected to read properly. 2) The CONFIGURE MSI command would only allow 80 characters. This has been increased to handle 256 characters. 3) A new command: CONFIGURE SYSTEM "HPBDAT;READEOF" was added for proper reading of BDAT files with HP style headers. The default setting is to report an error on EOF rather than to read the contents of the file. The default behavior is to disable reading of the file. This option may be placed back to the default using: CONFIGURE SYSTEM "HPBDAT" 4) The VIEWPORT command was not properly aligning with the RATIO command during a PLOTTER IS statement. This could cause some plots to appear in an unexpected location. This required a second PLOTTER IS statement. This has been repaired so the VIEWPORT command is now properly aligned during a PLOTTER IS statement. 5) The -geometry switch was ignored if HTBasic was closed while maximized. This was corrected so the -geometry switch is used no matter what the screen position or size was at last close of the application. 6) The -geometry switch was not recognizing the Y Offset parameter. This has been corrected so that the application now starts in the correct position as specified with the -geometry switch. 7) The Device Setup Dialog box was too large for screen resolutions less than 640X480. The dialog box was made smaller to fit into this screen resolution. 8) Device setup dialog box would allow text input for ISC. This information was not read and would cause unpredictable errors in ISC assignments. This was repaired to only allow dropdown list selection for the ISC. 9) The Device setup dialog box would cause a GPF if devices were added in HTBasic using LOAD BIN statements if there was no printer installed in the system. This has been corrected so any device may be added to the system without first having a printer installed. 10) The command RE-STORE KEY would improperly give the updating prog format dialog box when restoring current softkey definitions. This has been repaired to STORE the keys without the prompt. 11) ON TIMEOUT support was added to the Serial driver during TRANSFERs. 12) ON TIMEOUT support for software timeouts was added to the HPIBS driver. Previously only hardware timeouts were functional. 13) Improvements were made to the Global breakpoints handling in the Debugger. 14) The INMEM command was enhanced to properly report Loaded DLLS. 15) Setting buffer CONTROL registers in one line was not functional. This was repaired to allow proper setting of multiple buffer related CONTROL registers on one line. 16) The command line switch -fn, used to change the display font was affecting the -geometry switch that specified the number of characters to display. This has been fixed so that a geometry switch that is less than 100 will properly set the window size to reflect an alternate font's size. 18) The context sensitive help accessed by hitting the F1 key with the cursor positioned on a keyword was only functional when the MSI was the same as htbwin.exe. This was corrected so context sensitive help is functional despite the MSI setting. 19) Keywords were not properly colored in the Windows editor if they were preceded by a minus sign. This has been repaired so the minus sign has no effect on adjacent keyword coloring. 20) Control KBD,0;X now properly turns on and off the Caps Lock. Previously both a value of 1 and 0 would only toggle the Caps Lock State. A 1 will now turn on Caps Lock, and a 0 value for x will turn off the Caps Lock. 21) The CONFIGURE SYSTEM command has been enhanced to allow up to 256 characters in the PC path specifier. 22) A correction was made to the SERIAL32 driver to resolve some timing issues with ON INTR. These issues were discovered with tight OUTPUT and ENTER communication as in loopback testing. 23) Support for MAT commands on LONG arrays has been added. 24) CAT SELECT of a file with an extension, or a directory would not display if just the first half of the file name or directory name was given. This has been repaired to properly give the correct SELECTed file results. 25) GFONTed LABEL characters were not properly affected by the CLIP and LDIR statements. This was corrected so the CLIP and LDIR statements properly affects all LABEL statements, including GFONT changed LABEL statements. 26) When a string was entered using the GPIBNI driver with ENTER USING "%,-K";A$, the LEN(A$) would report the string dimension rather than the string length. The driver has been updated to correct this. Basic Plus _______________________________________________________ Some changes regarding the effects of HTBasic Plus on HTBasic Graphics were made. The details of this interaction follow: There are two HTBasic Plus graphic modes that are supported. Standard and ReadOnly. The ReadOnly mode is selected with the – cu ReadOnly command line switch, otherwise the Standard mode is used. The effects of each of these modes is explained below. While HTBasic Plus is loaded, HTBasic for Windows graphics will be placed in the color map mode (i.e., PLOTTER IS CRT,"INTERNAL";COLOR MAP) if your computer's display system supports it. This implies that all PLOTTER IS CRT,"INTERNAL" requests will be converted. Standard Mode: Standard Mode supports two separate color maps. One for HTBasic and the other for HTBasic Plus. After each of the following events... LOAD BIN "BPLUS" MERGE ALPHA WITH GRAPHICS PLOTTER IS CRT GINIT RESET SCRATCH A HTBasic Plus will initialize the HTBasic Plus color map to the values specified in your CONFIG file (see "Customizing Pens"). Which portion depends on two things: 1. How many colors are available to HTBasic for Windows as specified with the "-colors" HTBasic for Windows command line switch). 2. Which HTBasic for Windows pens are referenced in the logical pen portion of your CONFIG file. By default, HTBasic Plus uses 16 colors. If less than 256 colors are available to HTBasic for Windows, these 16 colors are mapped to pens 0-15 and pens 0-7 are set the same as the HTBasic for Windows default. If 256 colors are available, the 16 default HTBasic for Windows colors are mapped to pens 16-31 in the HTBasic Plus color map. The SET PEN command does not affect the HTBasic Plus color map. The color map may only be changed from within the CONFIG file. -cu ReadOnly mode: In ReadOnly mode both HTBasic for Windows and HTBasic Plus share the same color map. After each of the following events... LOAD BIN "BPLUS" MERGE ALPHA WITH GRAPHICS PLOTTER IS CRT GINIT RESET SCRATCH A HTBasic Plus will re-map or translate a portion of the HTBasic for Windows color map to the values specified in your CONFIG file (see "Customizing Pens"). Which portion depends on two things: 1. How many colors are available to HTBasic for Windows as specified with the "-colors" HTBasic for Windows command line switch). 2. Which HTBasic for Windows pens are referenced in the logical pen portion of your CONFIG file. By default, HTBasic Plus uses 16 colors. If less than 256 colors are available to HTBasic for Windows, these 16 colors are mapped to pens 0-15 and pens 0-7 are set the same as the HTBasic for Windows default. If 256 colors are available, the 16 default HTBasic for Windows colors are mapped to pens 16-31. If you subsequently execute any SET PEN command, that definition remains in effect until any of the following events occur: MERGE ALPHA WITH GRAPHICS PLOTTER IS CRT GINIT RESET SCRATCH A However, because of the mapping, mapped pens are no longer affected by their original pen number. By default, pens 16-31, 230, 231, and 238 are mapped to different pen numbers. For example, pen 18 is mapped to pen 2's color. A SET PEN 18 command will not change pen 18's color. However, a SET PEN 2 will change any pen 18's that have already been written to the HTBasic screen, but will always be the original color at the time it is written. Because of unpredictable results, it is not recommended using the SET PEN command with the –cu ReadOnly mode. Repairs made to 7.3 for 7.4 _______________________________________________________ 1) DEL in legacy editor would cause a GPF (General Protection Fault) if it deleted across contexts. Repairs made to 7.2 for 7.3 _______________________________________________________ 1) Unassigned Softkeys would cause program hang. This has been repaired so undefined softkeys do not hang. 2) Find Command restored to the Search Menu. 3) DAQNI driver updated to correct output function. 4) ON TIMEOUT support was added to the Serial driver during TRANSFERs. 5) ON TIMEOUT support for software timeouts was added to the HPIBS driver. Previously only hardware timeouts were functional.